Graph Traverse Software Pipelining
نویسندگان
چکیده
Software pipelining is becoming widely used as a loop execution model for microprocessors supporting a high instruction level parallelism. In this paper we describe a heuristic method for software pipelining, named Graph Traverse Software Pipelining (GTSP), that divides the scheduling problem in two phases: scheduling on a graph and code generation. The first phase encapsulates the NP-complete part of the problem. The scheduling is represented on the data dependence graph (DDG) through a set of scheduling recurrences composed of scheduling edges, representing a partial ordering between statements in the each recurrence. A heuristic is given to include such edges in order to generate efficient schedules. It improves previous software pipelining techniques achieving the maximum throughput for 98% of a benchmark set composed of more than 500 innermost loops from the SpecFP95. The second phase is a fast and automatic algorithm that transforms the scheduling generated on the DDG into VLIW-like instructions. Among the advantages of GTSP we remark the abstraction on the graph that benefits from the large developed graph theory, the global knowledge of the heuristic during the scheduling phase, and the possibility of reaching maximum throughput schedules without unrolling the DDG.
منابع مشابه
Circuit Retiming Applied to Decomposed Software Pipelining
| This paper elaborates on a new view on software pipelining, called decomposed software pipelining, and introduced The approach is to decou-ple the problem into resource constraints and dependence constraints. Resource constraints management amounts to scheduling an acyclic graph subject to processors constraints , a problem for which an eeciency bound is known, resulting in a bound for loop s...
متن کاملIntegrating Software Pipelining and Graph Scheduling for Iterative Scientific Computations
Graph scheduling has been shown eeective for solving irregular problems represented as directed acyclic graphs(DAGs) on distributed memory systems. Many scientiic applications can also be modeled as iterative task graphs(ITGs). In this paper, we model the SOR computation for solving sparse matrix systems in terms of ITGs and address the optimization issues for scheduling ITGs when communication...
متن کاملSoftware Pipelining for the Pegasus IR
Modern processors, especially VLIW processors, often have the ability to execute multiple instructions simultaneously. Taking advantage of this capability is crucial for high performance software applications. Software pipelining is a technique designed to increase the level of parallelism in loops. We propose a new approach to software pipelining based on direct manipulations of control flow g...
متن کاملSoftware Pipelining and Register Pressure in VLIW Architectures: Preconditionning Data Dependence Graphs is Experimentally Better than Lifetime-Sensitive Scheduling
Embedding register-pressure control in software pipelining heuristics is the dominant approach in modern back-end compilers. However, aggressive attempts at combining resource and register constraints in software pipelining have failed to scale to real-life loops, leaving weaker heuristics as the only practical solutions. We propose a decoupled approach where register pressure is controlled bef...
متن کاملDecomposing Meeting Graph Circuits to Minimise Kernel Loop Unrolling
This article studies an important open problem in backend compilation regarding loop unrolling after periodic register allocation. Although software pipelining is a powerful technique to extract fine-grain parallelism, variables can stay alive across more than one kernel iteration, which is challenging for code generation. The classical software solution that does not alter the computation thro...
متن کامل